# -*- coding: utf-8 -*-

import sys
from pymongo import MongoClient
from bson.son import SON as sss #固定排列顺序

def get_rank(user_id):
    client = MongoClient()  #连接数据库
    db = client.shiyanlou   #选择操作的数据库
    contests = db.contests.aggregate([  #aggregate是mongodb的聚合
        {'$group':{
            '_id':'$user_id',
            'score':{'$sum':'$score'},
            'time':{'$sum':'$submit_time'}
        }},
        {'$sort' : sss(
            [('score',-1),('time',1)] #sss先按score降序，然后再按time升序

        )}
    ])
    for r,s in enumerate(contests): #enumerate函数 用于将一个遍历的数据对象（如列表，元组或字符串）组合为一个索引序列，
    #同时列出数据和数据下标，一般用再for循环当中
    
        if user_id == s['_id']:
            return r+1,s['score'],s['time']

#    return rank, score, submit_time

if __name__ == '__main__':

#    userdata = get_rank(user_id)
    print(get_rank(int(sys.argv[1])))